iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
自我挑戰組

asp.net可以變出那些功能系列 第 10

自然風網站/復古風網站

  • 分享至 

  • xImage
  •  

其實我覺得工程師要靠配色去創造不同的風格,還有美學真的是有難度
而且像是自然風網站/復古風網站
這兩種截然不同的風格的內容範例,
要工程師去想真的是要有想像力啊~

ASP.NET開發操作流程:資料表設定好>再寫程式:加入資料庫>串聯資料庫>產生Models裡面類別檔dao>按:建置>Controllers裡面的Entities>產生畫面View

這裡都只有Controllers裡面的Entities>產生畫面View

或許後面不夠寫會再回頭創造出資料表的連結也是有可能的,可以期待~

自然風網站
https://laihao2.com/Home/Contact14
https://ithelp.ithome.com.tw/upload/images/20240917/20119035XvYmSousBZ.png

只有Controllers裡面的Entities>產生畫面View

Controllers裡面的Entities

public ActionResult Contact14()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }

解釋程式碼
這段代碼是一個 ASP.NET MVC 控制器中的 Contact14 方法,用於處理與 "Contact" 頁面相關的請求。我們來逐步解釋它的結構和功能:

1. public ActionResult Contact14()

  • 這是一個公開的 ActionResult 方法,意味著它可以通過 HTTP 請求訪問。
  • 方法名為 Contact14,通常與 "Contact" 頁面相關聯,但這里用了不同的名稱 Contact14,可能是另一個類似的頁面。
  • 它不接受任何參數。

2. ViewBag.Message = "Your contact page.";

  • 這一行使用了 ViewBag,它是一個動態對象,允許你在控制器中向視圖傳遞數據。
  • ViewBag.Message 被設置為 "Your contact page.",這條消息可以在視圖中顯示,通常用於頁面標題或說明文本。

3. return View();

  • 這行代碼表示返回一個視圖,它會去尋找與控制器和方法名稱匹配的視圖文件。默認情況下,它會尋找名為 Contact14.cshtml 的視圖文件。
  • View() 方法會將 ViewBag 中的數據一起傳遞給視圖。

總結

  • 這個方法的作用是處理對 Contact14 頁面(類似“聯系我們”頁面)的請求,設置一條消息,並將頁面渲染給用戶。

產生畫面View程式碼

@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
@{
    ViewBag.Title = "Contact14";
}

<div class="farm-wrapper">

    <h3>作品-自然風網站</h3>
    <h3>建置中</h3>

    <div class="farm-content">
        <head>
            <!DOCTYPE html>
            <html lang="zh-TW">
            <head>
                <meta charset="UTF-8">
                <meta name="viewport" content="width=device-width, initial-scale=1.0">
                <title>自然風網站</title>
                <link rel="stylesheet" href="css/style.css">
                <link rel="stylesheet" href="Content/css/reset.css">
                <link rel="stylesheet" href="Content/css/farm-style.css">
                <style>
                    body {
                        font-family: 'Georgia', serif;
                        background-color: #e0f7fa; /* 柔和的淺藍色背景 */
                        color: #4a4a4a; /* 深灰色字體 */
                    }

                    header {
                        background-image: url('nature-background.jpg'); /* 自然背景圖片 */
                        background-size: cover;
                        text-align: center;
                        color: #fff;
                        padding: 40px 0;
                    }

                    nav ul {
                        list-style: none;
                        padding: 0;
                        display: flex;
                        justify-content: center;
                        gap: 20px;
                    }

                        nav ul li a {
                            text-decoration: none;
                            color: #fff;
                            font-size: 18px;
                            padding: 10px 15px;
                            border-radius: 5px;
                            background-color: rgba(0, 0, 0, 0.3); /* 半透明背景 */
                            transition: background-color 0.3s;
                        }

                            nav ul li a:hover {
                                background-color: rgba(0, 0, 0, 0.5);
                            }

                    section {
                        padding: 30px;
                        background-color: #fff;
                        border-radius: 15px;
                        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
                        margin-bottom: 30px;
                    }

                    footer {
                        background-color: #00695c; /* 深綠色背景 */
                        text-align: center;
                        padding: 20px 0;
                        color: #fff;
                    }
                </style>
            </head>
            <body>
                <header>
                    <h1>我的自然風格網站</h1>
                    <nav>
                        <ul>
                            <li><a href="#about">關於我們</a></li>
                            <li><a href="#products">我們的產品</a></li>
                            <li><a href="#contact">聯繫我們</a></li>
                        </ul>
                    </nav>
                </header>

                <main>
                    <!-- 隨機提示語部分 -->
                    <section id="quote">
                        <p id="randomQuote"></p>
                    </section>

                    <!-- 關於我們部分,帶滾動顯示動畫 -->
                    <section id="about" class="fade-in">
                        <h2>關於我們</h2>
                        <p>我們是一家致力於可持續發展的公司,專註於將自然元素融入到每一個設計中。我們的團隊由一群充滿熱情和創造力的人組成,他們致力於通過產品讓人們感受到自然的美好。</p>
                    </section>

                    <!-- 我們的產品部分,帶滾動顯示動畫 -->
                    <section id="products" class="fade-in">
                        <h2>我們的產品</h2>
                        <p>用天然材料,結合現代設計理念,為您的生活帶來更多的舒適和美感。</p>
                        <ul>
                            <li>
                                <strong>產品一:</strong> 這款產品結合了傳統工藝和現代設計,適合各種場合使用。
                            </li>
                            <li>
                                <strong>產品二:</strong> 我們的第二款產品以其獨特的功能和美觀的外觀贏得了許多客戶的喜愛。
                            </li>
                        </ul>
                    </section>
                    <section id="faq">
                        <h2>常見問題解答</h2>
                        <dl>
                            <dt>我們如何確保產品的環保性?</dt>
                            <dd>我們嚴格選擇可持續的材料,並與認證的供應商合作。</dd>
                            <dt>如何維護我們的產品?</dt>
                            <dd>請參考我們的產品使用指南進行日常維護。</dd>
                        </dl>
                    </section>
                    <!-- 聯繫我們部分 -->
                    <section id="contact" class="fade-in">
                        <h2>聯繫我們</h2>
                        <p>歡迎通過電子郵件聯繫我們。</p>
                        <p>地址:1234 自然大道,地球村</p>
                        <p>電話:123 456 7890</p>
                        <p>電子郵件:jzs2home@hotmail.com</p>
                        <p>關註我們:<a href="#">Facebook</a> | <a href="#">Twitter</a></p>

                    </section>
                </main>

               

                <!-- JavaScript 部分 -->
                <script>
                    // 隨機提示語
                    const quotes = [
                        "大自然是最偉大的藝術家。",
                        "保持與自然的連接,讓心靈放鬆。",
                        "每一片葉子都是自然的奇蹟。",
                        "呼吸大自然的氣息,享受當下的美好。"
                    ];

                    function displayRandomQuote() {
                        const randomIndex = Math.floor(Math.random() * quotes.length);
                        document.getElementById('randomQuote').innerText = quotes[randomIndex];
                    }

                    // 當頁面加載時顯示隨機提示
                    window.onload = displayRandomQuote;

                    // 滾動顯示動畫
                    window.addEventListener('scroll', function () {
                        const fadeInElements = document.querySelectorAll('.fade-in');

                        fadeInElements.forEach(function (element) {
                            const rect = element.getBoundingClientRect();
                            if (rect.top < window.innerHeight && rect.bottom >= 0) {
                                element.classList.add('visible');
                            }
                        });
                    });
                </script>
            </body>
        </html>

解釋程式碼
這段代碼是一個 ASP.NET MVC 視圖,展示了一個以“自然風”為主題的網站,頁面的設計靈感來自自然,通過柔和的顏色、自然元素和滾動動畫等進行呈現。頁面采用了 HTML、CSS 和 JavaScript 來增強用戶體驗,以下是對代碼的詳細解釋。

1. @{ Layout = "~/Views/Shared/_Layout.cshtml"; }

  • 這一行指定頁面使用名為 _Layout.cshtml 的布局文件。布局文件定義了網站的公共部分(例如頭部、頁腳等),確保頁面具有一致的結構。

2. @{ ViewBag.Title = "Contact14"; }

  • 設置 ViewBag.Title,將當前頁面的標題設為 "Contact14",這個標題會顯示在瀏覽器的標簽頁中。

3. <div class="farm-wrapper">

  • 頁面內容的主容器,使用 div 包裹,並包含了兩個 <h3> 元素,表示該網站的名字是“自然風網站”,且目前處於建置中。

4. <head> 和頁面樣式

  • 包含頁面的基本元數據、外部樣式表的引用以及內聯樣式:

    • <meta charset="UTF-8"> 設置了頁面的字符編碼為 UTF-8,確保頁面能正確顯示中文字符。
    • <meta name="viewport" content="width=device-width, initial-scale=1.0"> 使頁面在移動設備上具有響應式布局。
    • <link rel="stylesheet" href="css/style.css"> 和其他樣式引用外部的 CSS 文件來控制頁面的樣式。
  • 內聯 CSS 定義了頁面的核心樣式:

    • body { font-family: 'Georgia', serif; background-color: #e0f7fa; color: #4a4a4a; } 設置頁面字體為 Georgia,背景顏色為柔和的淺藍色,文字顏色為深灰色,營造出自然、清新和舒緩的視覺體驗。
    • header { background-image: url('nature-background.jpg'); background-size: cover; } 為頁面的頭部添加了一張自然風景的背景圖片,並設置了背景填充。
    • nav ul { display: flex; justify-content: center; } 將導航菜單設置為水平排列,並居中顯示,提升頁面的簡潔和美觀。
    • .fade-in.visible 類用於頁面滾動時觸發淡入動畫。

5. 頁面結構

- 頭部 (header)

  • <header> 元素定義了頁面的頭部區域,帶有自然背景圖片,居中的文字顏色為白色,標題為“我的自然風格網站”。
  • <nav> 元素包含一個導航菜單,用戶可以點擊鏈接快速跳轉到頁面的不同部分,如“關於我們”、“我們的產品”和“聯繫我們”。

- 隨機提示語

  • <section id="quote"> 用於顯示一個隨機提示語,提示語通過 JavaScript 動態生成。

- 關於我們

  • <section id="about" class="fade-in"> 介紹了公司致力於可持續發展和自然元素融入設計的理念,內容通過滾動動畫(fade-in)淡入顯示,增強了用戶的視覺體驗。

- 我們的產品

  • <section id="products" class="fade-in"> 介紹了公司的一些產品,使用列表形式展示了每個產品的詳細信息,如產品特點和設計理念,同樣采用了淡入動畫。

- 常見問題解答

  • <section id="faq"> 以問答形式呈現了常見問題,使用 <dl> 列表來展示每個問題和答案。

- 聯繫我們

  • <section id="contact" class="fade-in"> 提供了聯系信息,包括公司的地址、電話、電子郵件,以及社交媒體的鏈接。

6. JavaScript 功能

- 隨機提示語

  • 這一段代碼用於在頁面加載時顯示隨機的提示語句:
    const quotes = [
        "大自然是最偉大的藝術家。",
        "保持與自然的連接,讓心靈放鬆。",
        "每一片葉子都是自然的奇蹟。",
        "呼吸大自然的氣息,享受當下的美好。"
    ];
    
    function displayRandomQuote() {
        const randomIndex = Math.floor(Math.random() * quotes.length);
        document.getElementById('randomQuote').innerText = quotes[randomIndex];
    }
    
    window.onload = displayRandomQuote;
    
    • quotes 數組存儲了多條關於自然的提示語。
    • displayRandomQuote 函數通過隨機選擇一個提示語,並將其插入到頁面的 randomQuote 元素中。
    • 使用 window.onload 事件,當頁面加載時自動顯示隨機提示。

- 滾動顯示動畫

  • 這段代碼用於實現頁面滾動時的淡入動畫:
    window.addEventListener('scroll', function () {
        const fadeInElements = document.querySelectorAll('.fade-in');
    
        fadeInElements.forEach(function (element) {
            const rect = element.getBoundingClientRect();
            if (rect.top < window.innerHeight && rect.bottom >= 0) {
                element.classList.add('visible');
            }
        });
    });
    
    • scroll 事件監聽器檢測頁面滾動,當 .fade-in 元素進入視口時,添加 visible 類觸發 CSS 動畫,使元素淡入顯示。

7. HTML 結束標簽

  • 頁面以標準的 <!DOCTYPE html> 開始,並且包含完整的 <html>, <head>, 和 <body> 標簽,確保頁面在瀏覽器中正確渲染。

總結

該頁面使用了清新的自然風格設計,顏色柔和,帶有自然元素的背景圖片,通過滾動淡入動畫和隨機提示語功能,增強了用戶體驗。設計上注重環保和自然主題,適合與可持續發展和環保相關的網站項目。

復古風網站
https://laihao2.com/Home/Contact18

https://ithelp.ithome.com.tw/upload/images/20240917/20119035GTvlQQ0ae0.png
只有Controllers裡面的Entities>產生畫面View

Controllers裡面的Entities

public ActionResult Contact18()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }

解釋程式碼
這段代碼是一個 ASP.NET MVC 控制器中的 Contact18 動作方法,下面對其進行逐步解釋:

1. public ActionResult Contact18()

  • 這是一個公共方法,名稱為 Contact18,它返回一個 ActionResult 類型的結果。
  • 方法的訪問修飾符是 public,意味著可以從外部調用這個方法。
  • ActionResult 是 ASP.NET MVC 中一個通用的返回類型,表示控制器動作方法的返回結果,可以是視圖、文件、JSON 數據等。

2. ViewBag.Message = "Your contact page.";

  • 這里使用了 ViewBag,它是一個動態對象,允許你在控制器和視圖之間傳遞數據。
  • ViewBag.Message 為視圖傳遞了一個字符串 "Your contact page.",該字符串可以在視圖中訪問並顯示。
  • ViewBag 是一種用於臨時存儲數據的方式,數據只存在於一次 HTTP 請求中。視圖可以通過 @ViewBag.Message 來訪問這個信息。

3. return View();

  • View() 方法會返回與當前控制器動作同名的視圖。在這種情況下,Contact18 方法會返回 Contact18.cshtml 視圖(假設視圖存在)。
  • 沒有指定視圖名稱,所以它會默認尋找與該動作方法同名的視圖文件。如果你想返回其他視圖,可以在 View() 方法中傳入視圖名稱,比如 View("AnotherView")

作用

  • 該方法的功能是在用戶訪問 Contact18 動作時,加載一個名為 Contact18 的視圖,並傳遞 "Your contact page." 作為頁面上的信息。
    產生畫面View程式碼
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
@{
    ViewBag.Title = "Contact18";
}

<div class="farm-wrapper">

    <h3>作品-復古風網站</h3>
    <h3>建置中</h3>

    <div class="farm-content">
        <head>
            <!DOCTYPE html>
            <html lang="zh-TW">
            <head>
                <meta charset="UTF-8">
                <meta name="viewport" content="width=device-width, initial-scale=1.0">
                <title>復古風網站</title>
                <link rel="stylesheet" href="css/style.css">
                <link rel="stylesheet" href="Content/css/reset.css">
                <link rel="stylesheet" href="Content/css/farm-style.css">
                <style>
                    body {
                        font-family: 'Times New Roman', serif;
                        background-color: #f0e6d6;
                        color: #4b4b4b;
                    }

                    header {
                        text-align: center;
                        background-color: #dcdcdc;
                        padding: 30px;
                        border-bottom: 3px solid #b0b0b0;
                    }

                    nav ul {
                        list-style: none;
                        padding: 0;
                        margin: 0;
                    }

                    nav li {
                        display: inline-block;
                        margin: 0 15px;
                    }

                    a {
                        text-decoration: none;
                        color: #3a3a3a;
                        font-weight: bold;
                    }

                    section {
                        max-width: 800px;
                        margin: 20px auto;
                        padding: 20px;
                        background-color: #ffffff;
                        border-radius: 8px;
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }

                    img {
                        border: 3px solid #b0b0b0;
                        box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.2);
                        border-radius: 8px;
                    }

                    html {
                        scroll-behavior: smooth;
                    }

                    .modal {
                        display: none;
                        position: fixed;
                        z-index: 1;
                        left: 0;
                        top: 0;
                        width: 100%;
                        height: 100%;
                        overflow: auto;
                        background-color: rgba(0, 0, 0, 0.4);
                    }

                    .modal-content {
                        background-color: #fefefe;
                        margin: 15% auto;
                        padding: 20px;
                        border: 1px solid #888;
                        width: 80%;
                        border-radius: 8px; /* 增加圆角效果 */
                    }

                    .close {
                        color: #aaa;
                        float: right;
                        font-size: 28px;
                        font-weight: bold;
                    }

                        .close:hover,
                        .close:focus {
                            color: black;
                            text-decoration: none;
                            cursor: pointer;
                        }
                </style>
            </head>
            <body>
                <header>
                    <h1>復古時光</h1>
                    <nav>
                        <ul>
                            <li><a href="#home">首頁</a></li>
                            <li><a href="#about">關於</a></li>
                            <li><a href="#album">相簿</a></li>
                            <li><a href="#contact">聯絡</a></li>
                        </ul>
                    </nav>
                </header>

                <main>
                    <section>
                        <h2>歡迎來到我的復古世界</h2>
                        <p>這裡充滿了懷舊的氛圍。</p>
                        <p>我們致力於重現20世紀中期的經典風格,從老式照片到復古家具,每一個細節都旨在帶你回到那個經典的時代。</p>
                        <p>我們提供一系列復古風格的服務,包括復古設計、修復古董、以及為活動提供復古主題的佈置。無論是婚禮還是生日派對,我們都能提供獨特的復古體驗。</p>

                        <img src="~/templates/webphoto.jpg" alt="My Photo" style="width: 200px; height: auto; float: left; " />
                    </section>
                    <section id="testimonials">
                        <h2>用戶評價</h2>
                        <p>"這個網站真的把我帶回到了我的童年時光,設計非常精緻!" - 張小姐</p>
                        <p>"每次來這裡都能感受到復古的魅力,服務非常周到。" - 李先生</p>
                    </section>
                    <section id="faq">
                        <h2>常見問題</h2>
                        <h3>如何預訂服務?</h3>
                        <p>您可以通過我們的頁面填寫表單,或直接致電我們的客服熱線進行預訂。</p>

                    </section>

                    <section>
                        <h2>我們的服務</h2>
                        <p>我們提供一系列復古風格的服務,包括設計。</p>
                    </section>
                    <section id="team">
                        <h2>我們的團隊</h2>
                        <p>我們由一群充滿熱情的設計師和工匠組成。我們的團隊致力於將經典與現代相結合,打造出最具特色的體驗。</p>
                    </section>

                </main>

                <button id="scrollTopBtn" onclick="scrollToTop()">返回頂部</button>
                <button id="openModal">查看更多</button>

                <div id="myModal" class="modal">
                    <div class="modal-content">
                        <span class="close" onclick="closeModal()">&times;</span>
                        <p>期待與您見面。</p>
                    </div>
                </div>

                

                <script>
                    const photos = [
                        'old-photo.jpg',
                        'another-photo.jpg',
                        'yet-another-photo.jpg'
                    ];
                    let currentIndex = 0;

                    function changePhoto() {
                        currentIndex = (currentIndex + 1) % photos.length;
                        document.getElementById('photo').src = photos[currentIndex];
                    }

                    const scrollTopBtn = document.getElementById('scrollTopBtn');
                    window.onscroll = function () {
                        if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
                            scrollTopBtn.style.display = "block";
                        } else {
                            scrollTopBtn.style.display = "none";
                        }
                    };

                    function scrollToTop() {
                        document.body.scrollTop = 0;
                        document.documentElement.scrollTop = 0;
                    }

                    const modal = document.getElementById('myModal');
                    const openModalBtn = document.getElementById('openModal');
                    const closeModalSpan = document.getElementsByClassName('close')[0];

                    openModalBtn.onclick = function () {
                        modal.style.display = "block";
                    }

                    closeModalSpan.onclick = function () {
                        modal.style.display = "none";
                    }

                    window.onclick = function (event) {
                        if (event.target == modal) {
                            modal.style.display = "none";
                        }
                    }
                </script>
            </body>
        </html>

解釋程式碼
這段代碼是一個 ASP.NET MVC 視圖文件,用於創建一個覆古風格的網站頁面。頁面由 HTML、CSS 和 JavaScript 組成,結合 ASP.NET 的 Razor 語法來渲染視圖。以下是詳細解釋:

1. @{ Layout = "~/Views/Shared/_Layout.cshtml"; }

  • 指定當前視圖使用的布局頁面 _Layout.cshtml。布局頁面通常包含網頁的頭部、導航欄、腳部等通用部分,這樣可以避免在每個視圖中重覆編寫相同的結構。

2. @{ ViewBag.Title = "Contact18"; }

  • 使用 ViewBag 設置頁面的標題為 "Contact18"。ViewBag 是 ASP.NET MVC 提供的一種動態對象,允許在控制器和視圖之間傳遞數據。在布局頁面中,通常會使用 @ViewBag.Title 來顯示這個標題。

3. HTML 結構

  • 網頁結構從 <!DOCTYPE html> 開始,表明這是一個 HTML5 文檔。
  • <html lang="zh-TW">:設置網頁語言為繁體中文。
  • <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">:這些標簽用於確保網頁字符編碼正確,並在移動設備上具有良好的響應式顯示。

4. CSS 樣式

  • 定義了整個網頁的樣式,包括:
    • body:設置覆古風格的字體(Times New Roman)、背景顏色為淺米黃色(#f0e6d6),文字顏色為深灰色(#4b4b4b)。
    • header:設置頭部區域的背景色、邊框和內邊距,使其有覆古風格。
    • nav ul:導航菜單的樣式,使用 inline-block 使菜單項水平排列。
    • img:圖像的樣式,包括邊框、陰影和圓角,使其更有覆古感。
    • .modal.modal-content:模態窗口的樣式,用於創建一個彈出框效果,包含背景遮罩和圓角設計。

5. 頁面內容

  • <header>:頁面的頭部,顯示標題“復古時光”,並提供一個導航菜單,用戶可以點擊鏈接跳轉到不同的部分。
  • <main>:主內容區域,包含多個 section 標簽,每個標簽代表頁面的一個部分。
    • 歡迎來到我的復古世界:介紹了網站的覆古主題和相關服務。
    • 用戶評價:顯示用戶對網站的評價。
    • 常見問題:提供常見問題的回答。
    • 我們的服務我們的團隊:分別介紹服務內容和團隊背景。

6. 圖片輪播

  • photos 數組包含多個圖片路徑。changePhoto() 函數用於切換顯示的圖片。
  • 該功能可以讓用戶點擊按鈕或設置自動切換圖片,展示覆古風格的照片。

7. 返回頂部按鈕

  • scrollTopBtn:一個按鈕,當用戶向下滾動頁面時會顯示,點擊該按鈕可以快速返回頁面頂部。
  • window.onscroll 監聽滾動事件,控制按鈕的顯示與隱藏。
  • scrollToTop() 用於將頁面滾動到頂部。

8. 模態窗口

  • #myModal 是一個模態窗口,當用戶點擊按鈕時,會顯示一個彈出框,內容為“期待與您見面”。
  • openModalBtn.onclickcloseModalSpan.onclick 分別處理打開和關閉模態窗口的事件。
  • window.onclick 確保用戶點擊模態窗口外部時也能關閉窗口。

9. JavaScript 動作

  • 定義了多個 JavaScript 函數來處理圖片輪播、返回頂部功能以及模態窗口的打開與關閉,增強了網頁的交互性。

總結

這個頁面主要展示了覆古風格的設計,通過覆古的配色、字體、內容布局等傳達了懷舊的主題,同時結合現代的交互功能,如圖片輪播、模態窗口等,提供了良好的用戶體驗。

大家明天見~/images/emoticon/emoticon01.gif


上一篇
品牌/童趣網站
下一篇
日式網站一頁式網站
系列文
asp.net可以變出那些功能30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言